#pragma once
class vector3d
{
private:
	float value[3];

public:

	vector3d(void);
	vector3d(float x, float y, float z);
	vector3d(float *const);
	vector3d(const vector3d&);
	~vector3d(void);

	//getter
	float x() const;
	float y() const;
	float z() const;
	const float* xyz() const;

	//setter
	void x(const float);
	void y(const float);
	void z(const float);
	void xyz(const float*);
	void xyz(const vector3d&);
	
	//operator
	vector3d operator=(const vector3d&);
	vector3d operator-() const;
	vector3d operator+(const vector3d&) const;
	vector3d operator-(const vector3d&) const;
	vector3d operator*(const vector3d&) const;
	vector3d operator/(const vector3d&) const;
	
	float len();
	float dot(const vector3d&) const;
	vector3d cross(const vector3d&) const;
	void normalize();
	
};

